perm filename DATA.DIS[1,RWF]2 blob sn#511292 filedate 1980-05-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00011 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002			ON THE USE OF THE DATADISC TERMINAL 
C00017 00003	FILE DIRECTORY INFORMATION.
C00022 00004	EDITING A FILE.
C00026 00005
C00030 00006	PRINTING A FILE.
C00033 00007
C00039 00008	CURSOR OPERATIONS.
C00043 00009	LINE OPERATIONS.
C00047 00010	TEXT-MOVING OPERATIONS.
C00051 00011	APPENDIX B.  WHAT TO DO IN CASE OF TROUBLE.
C00059 ENDMK
C⊗;
		ON THE USE OF THE DATADISC TERMINAL 

This is file DATA.DIS[1,RWF] at the Stanford AI Lab (SU-AI), last written
April 9, 1980.  Bob Floyd (aka RWF) wrote it, maintains it, and welcomes
suggestions.


STARTING UP.
 
The DataDisc terminal consists of a keyboard and a TV-like screen.
Turn the ON-OFF switch on and wait for the screen to warm up.  
Adjust the contrast knob until letters appear on the screen.  Then adjust the
brightness knob so that the bright background just disappears.
The contrast knob can then be adjusted for visual comfort.

THE KEYBOARD.
 
The keyboard contains three types of keys.  Some keys send their character to
the computer.  Others, while held down, change the meaning of the character
keys.  Most of the
keys belong to the first category of characters.  The following keys modify
the meaning of the characters typed while they are held down.  
(1)  SHIFT.   Hold this key down like the SHIFT key on a typewriter for upper
     case letters.
(2)  SHIFT LOCK.   Press this key to go from typing upper case letters to 
     lower case or vice versa.  It affects only letters.
(3)  TOP.  Hold this key down to type the top character on keys which show two
     characters.
(4)  CONTROL and META.   These keys, which may be held down while a character
     is typed, modify the meaning of that character in various ways, some of
     which will be described in detail later.  To say briefly, "Hold down 
     CONTROL while typing  D ", this document uses CONTROL<D>.

Some keys are marked with a word or a syllable, such as RETURN.  Be sure to
use the RETURN key when called for, and not to type the six letters
separately. In the remainder of this document, they are enclosed in brackets []
for clarity.

typing CONTROL<BREAK> will stop the 
terminal display if it is typing too fast for you to read.
To resume display, type CONTROL<CLEAR>.
The [CALL] key may be used to interrupt 
anything that is going on that you want stopped, such as the display of a 
long text.

USING THE AI LAB COMPUTER.
 
If you do not already have them, get a project name, progammer initials, and
password from Les Earnest or Denny Brown.  After your account has been
activated, you may use the AI computer.  Turn on the power as described above.
Press the [CALL] key.  The system
monitor will begin a new line with a period, which shows that it awaits your 
command.  (If it fails to do this, the computer is probably not in service.)  
You must first identify yourself to the system by "logging in".
If XXX is your programmer initials,type L XXX [RETURN].
If you also need to specify a project name YYY, type L YYY/XXX [RETURN] instead.
When the system prints  PASSWORD= , type your password and [RETURN].
It will not appear on your terminal.  The system will now print a set of 
messages to all users of the AI system, not all intelligible.  If you log in 
using a comma to separate your project from your initials, all current 
messages, including those you have seen before, will be printed.  For more 
information on logging in, type  HELP LOGIN  followed by  [RETURN].  If you 
mistype your identification and the system types a TRY AGAIN message ending 
with the  # sign, retype the YYY/XXX and [RETURN] part.

DISCONNECTING FROM THE AI LAB COMPUTER.
 
When you get through using the computer, follow this disconnecting procedure.
When the monitor prints
the period (.), type  K [RETURN]  to tell the system that you want to quit.
(To get back to the monitor if you are editing, type  CONTROL <E> .)  The  K
stands for  KILL JOB .  The system will then print accounting information
and KJOB.  

CORRECTING INPUT.
 
When typing at the terminal, you may make corrections at any time until hitting
the [RETURN] key.  Corrections are made where the cursor is.  To move the cursor
right or left, type CONTROL<SPACE> or CONTROL<BS> respectively.  To change the
character at the cursor, type the new character.  To delete the character
at the cursor, type  CONTROL<D> .  To insert characters at the cursor, type
CONTROL<I>  followed by the desired characters, using  CONTROL<SPACE> to stop
inserting. To retype a garbled line, type [ALT].
 When the line is correct, type [RETURN].

FILE DIRECTORY INFORMATION.
 
To see the names of all your files, type  DIR [RETURN] .  To see the names of
another user's files, type  DIR[YYY,XXX] [RETURN]  where  YYY,XXX  is the
project name and programmer initials of that other user.


FILE NAMES.

Your own file names are of the form NNNNNN.EEE, where NNNNNN is a name of up to
six letters, and EEE is a code for the kind of file.  You might let EEE be TXT
for English text, DAT for numerical data, etc.  The name for someone else's 
file is NNNNNN.EEE[YYY.XXX], where YYY.XXX is his project name and programmer
initials.
 

COPYING A FILE.

(In this section, <- is used to stand for the left-pointing arrow on the
keyboard.)  To make a copy of a file, use the COPY command in the form
COPY newfile <- oldfile [RETURN] , to create a file named newfile ,
which is a copy of the file named oldfile .

READING A FILE.

Type  ET filename [RETURN] , where  filename  is the name of the file you want
to read (see above for file names).  Files are broken up into parts called
pages.  To see the next screenful of information in a page, type [FORM].
To back up within a page, type  CONTROL<vt> .  To get to the next page, type
CONTROL<P> .  To go forward  n  pages, type  CONTROL<+nP> ,  To go backward  n 
pages, type  CONTROL<-nP> .  To go to page  n , type  CONTROL<nP> .  When you are
done reading, type  CONTROL<E>  to return to the monitor.  You can use these
operations, and those in DELETING FROM A FILE, to read your mail, which is
on a file named  \M .  If you don't want to change a file while reading it, use ER
rather than ET.

CREATING A NEW FILE.

Type  CET filename [RETURN] .  Then type the lines of text you want 
to go into the file.  To start a new file page (for example, just
before a new subject heading), type  CONTROL<X> MARK [RETURN] .
When the file is complete, type  CONTROL<E> .

EDITING A FILE.

While reading or creating a file (see above), you may make changes to
it by addition, deletion, or replacement.  The following sections tell
how.  By the current line, page, or file, we mean the one the cursor is in.

In addition to the operations listed under READING A FILE, you will need to
know these:
	To move the cursor down or up  n  lines, type
		CONTROL<n> [RETURN]  or 
		CONTROL<n BS> respectively.
	If  n  is  1, just type  [RETURN] or [BS] respectively.
	To see more of the text at the top or bottom of the page, type
		CONTROL<T>  or CONTROL<B>  respectively.
	To move the cursor to line number  n  of the current page, type
		CONTROL<nL> .
Other operations are in APPENDIX A.
 

ADDING TO A FILE.

To add material at the end of any page of a file, read that file with the
cursor at the line of asterisks which ends that page.  If you are not already
reading the file, type  ET filename/nE [RETURN] , where  n  is the page number.
Then type in the new lines to be added to the file.

To insert new lines in a file, read that file with the cursor at the desired
place of insertion.  Type  CONTROL+META<RETURN> .  Then type in the new lines.
When finished, type  CONTROL<RETURN>.

To insert new material in a line of a file, read the file with the cursor at
that line.  Then use the methods described in CORRECTING INPUT, above.


DELETING FROM A FILE.

To delete a page of a file, read the file with the cursor in that page.
Pages are divided into several messages, each beginning with a ∂.Most pages are a
single message.  Type  CONTROL+META<∂D> .  Each time you do so, the message the 
cursor is in will be deleted.  When every message in a page is deleted, so is
the page.  Use this while reading your mail, to delete a message from your
mail file.  Your mail is in the file named  \M .

To delete one or more lines from a file, read the file with the cursor at the
first line to be deleted.  Type  CONTROL+META<nD>, where  n  is the number of
lines to be deleted.  You may omit  n if only 1 line is to be deleted.  To delete
an entire paragraph, type CONTROL +META<!D>.


SENDING MAIL.

To send a message to another person, create a file page which contains the
message (not forgetting a [RETURN] on the last line), then, while reading that
page, type  CONTROL<X> MAIL xxx  where  xxx  is the programmer initials of the
person to whom you are sending a message.  Use a list of such initials,
separated by commas, for multiple addressees.  See file MAIL.BH[UP.DOC].

To reply to mail from programmer xxx ,add your reply to the page you are
reading, or to a new page, then send the page as above.

To retain copies of all mail you send, create a file called  OUTGO.MSG  and
copies will automatically be put there.  You may edit  OUTGO.MSG , for example
to remove old messages.

To send a one-line message to  xxx , type  
	SEND xxx message [RETURN]
or (while editing) type
	CONTROL<0X> SEND xxx message [RETURN]

To find out John Doe's programmer initials on the SAIL machine type
	FINGER JOHN DOE [RETURN].

For information from the AI phone directory, type  FIND string [RETURN]  to
print all the entries in the directory which contain  string , which might
be a name, phone number, etc. For information from the Computer Science
Department directory, type
	FIND string IN PEOPLE.DAT[PER,CSD] [RETURN].
In fact, FIND can be used to look for  string  in any file.

If programmer  xxx  is at another computer center (say SUMEX), type 
xxx%SUMEX  in mail commands.

PRINTING A FILE.

To make a hard (paper) copy of a file on the XGP printer, type
	XSP filename [RETURN]
A header page will give your name and other identifying information.
 
To get hard copy from a Diablo terminal, log in at that terminal and type
	TYPE/PAU filename [RETURN]


TO COPY AND JOIN PARTS OF FILES.  (See above, COPYING A FILE, first.)
 
Examples:
COPY f1←f2 [RETURN]
	creates a new file  f1 , which is a copy of file  f2 .
COPY f1←f2(3:5) [RETURN]
	f1  is a copy of pages 3 through 5 of  f2 .
COPY f1←f2(2:4,16,11:14) [RETURN]
	f1  is a copy of pages 2-4, 16, and 11-14 of  f2 .
COPY f1←f2,f3,f4
	f1  is a copy of files  f2 , f3 , and  f4 , joined together.
COPY f1←f2(3:5),f3,f4(6)
	f1  is a copy of pages 3-5 of  f2 , then  f3 , then page 6 of  f4 .


TO PRINT PARTS OF FILES

The file name in a printing command,  (XSP, TYP, etc.)  may be followed by
a parenthesized list of page numbers, and only those pages will be printed.
See the examples of copying parts of files.


TO DELETE A FILE.

(Be careful with this one; be sure you have the right file name, and that 
you no longer need the file.)  Type
	DELETE filename [RETURN]



APPENDIX A.   LIST OF USEFUL EDITING OPERATIONS.

Files are broken into pages by page marks, which appear on the screen as
lines of asterisks.  Pages may be broken into messages, by lines which
begin with a @.  Pages, or messages, may be broken into paragraphs
by blank lines.  In the editing operations below, we use  n  to stand for a
number.  In some commands, the number may be omitted if it is  1 ; if so we
use  n1  to stand for the number.  In some commands, one may use  !  instead
of a number to mean the number of lines to the end (or beginning) of the
current paragraph, or  CONTROL<∂> or CONTROL<-∂> to mean the number of lines to the
end or beginning of the current message; if so, we use  nn  to stand for the number.
If both alternatives to the number are allowed, we use  nn1  to stand for
the number.  Usually,  CONTROL<∞>  can be used as the number to do something
as many times as possible.

The  CET  and  ET  commands may be modified by putting one or more of the
following modifiers, called switches, immediately after the file name to
which they apply.

/E	Open the file with the cursor at the end of the file.
	(Use this to add stuff at the end of the file.)
/nE	Open the file with the cursor at the end of page  n , where  n  is
	any number.  (Use this to add stuff at the end of a page.)
/F	Break the file into pages small enough to be shown on the screen.
/nF	Break the file into pages of at most  n  lines.
/nP	Open the file displaying page  n .  (Use this and  /nL  to get to
	a particular place in the file.)
/nL	Open the file with cursor at line  n .
/R	(Meaning READ ONLY.)  Protect the file from modification.

CURSOR OPERATIONS.

Moving cursor among pages.
CONTROL<P>	cursor to next page.
CONTROL<-P>	cursor to previous page.
CONTROL<+n1 P>	cursor forward  n1  pages.
CONTROL<-n1 P>	cursor back  n1  pages.
CONTROL<nP>	cursor to page  n .

Moving cursor within a page.
[FORM]			cursor forward to next screenful
[VT]			cursor back to previous screenful
CONTROL<nn1> [RETURN]     cursor forward  nn1  lines.
CONTROL<nn1> [BS]	cursor back  nn1  lines.
CONTROL(>) 		cursor forward  4  lines.
CONTROL(<)  		cursor back  4  lines.
CONTROL<≥>		cursor forward half a screenful (16 lines)
CONTROL<≤>		cursor back half a screenful (16 lines)
CONTROL<n1 L>		cursor to line  n1 .
CONTROL<+n1 L>		cursor forward  n1  lines.
CONTROL<∞L>		cursor to last line.
CONTROL<-n1 L>		cursor back  n1  lines.
CONTROL<n1∧>		cursor to  n1 -th line from top of window.
CONTROL<n1∨>		cursor to  n1  line up from bottom of window.
CONTROL<X> LINCNT [RETURN]	terminal tells you how many characters are in
			current line and page.

Moving cursor within a line.
CONTROL<n1 SPACE>  	to move cursor right  n1  places.
CONTROL<n1 BS>  	to move cursor left  n1  spaces.
CONTROL<TAB>  		to move cursor to right end.
CONTROL<RETURN>		to move cursor to left end.



CHARACTER OPERATIONS.

Changing characters at the cursor:  Type the new characters you want over the
old ones.

Inserting new characters at the cursor:
(1)  Type  CONTROL<I> .
(2)  Type the characters you want to insert between the existing characters
     at the cursor.  No other editing operations will work, until you
(3)  Type  CONTROL<SPACE> or other cursor-moving operation.

Deleting characters at the cursor.
CONTROL<n1 D>	deletes  n1  characters starting at the cursor.
		At end of line, deletes carriage return, joining two lines.
CONTROL<K>c	deletes all characters from the cursor up to the next
		occurrence of character  c .  If  c  is [RETURN], deletes
		the rest of the line.

Cancelling changes in the current line:  <alt> .

LINE OPERATIONS.

Inserting new lines in the file.
(1)  Type  CONTROL<META RETURN> .
(2)  Use cursor-moving operations to get to the places where you want to
     insert lines.  At each cursor location, you can type new lines which
     will be inserted between the old ones.  No other editing operations
     will work, until you
(3)  Type  CONTROL<RETURN> .

Deleting lines at the cursor.
CONTROL<nn1 META D>  deletes  nn1  lines.  (If an entire page is deleted, pages
		are renumbered.)  At end of page, deletes page mark to
		combine pages.
CONTROL<X> CANCEL [RETURN]   cancels an erroneous deletion.

Looking at different lines of the file without moving the cursor.
CONTROL<J>	look below cursor.
CONTROL<0J>	look around cursor (number zero).
CONTROL<-J>	look above cursor.
CONTROL<T>	see more at top.
CONTROL<B>	see more at bottom.



MATCHING OPERATIONS.

Finding occurrences of string  s  in a page, starting from the current line,
going down, and continuing around from the top after hitting the bottom.
(1)  If you want to find  s  only where it appears surrounded by blanks or
     punctuation (like FIND in this sentence), type  CONTROL<META> ; otherwise
     the editor will find  s  even if it appears as part of a larger word (like
     ROUND in this sentence).
(2)  To search the current page, type  CONTROL<F> ; otherwise, to search the
     whole file, type  CONTROL<X> F  and one blank space.
(3)  Type the string  s  you want to search for.  (Any further spaces you
     type will be taken as part of  s .)
(4)  Type  [RETURN]  to initiate the search.  (To search the directory
     instead of the body of the file, type  CONTROL<P> .)
(5)  To repeat this search as many times as desired, type  CONTROL+META<*> .

To find occurrences of string  s1  and replace each one with  s2 , use the
command for finding string  s1  (see above), but after  s1 , type  CONTROL+META<\>  .
s2.  To repeat such a substitution  n1  times, after having done it once, type
	CONTROL<n1 META \> .
To repeat it as many times as it can be, use
	CONTROL+META<∞\>
To make changes to the string that has been found or substituted by the above
commands, you may want the cursor to be left under the string ready to edit 
the line.  To do this, on a first search, type  CONTROL<RETURN> .  To repeat a
search, type  CONTROL<*> .  To repeat a substitution, type  CONTROL<n1\> .

TEXT-MOVING OPERATIONS.

Moving a part of a file page to a new place.
(1)  (A)  To move the text without leaving a copy behind, type  CONTROL<n1 A>
	  to pick up the next  n1  lines with the cursor.  Otherwise,
     (B)  To move a copy of the text, leaving the original behind, type
	  CONTROL<n1 C>  to pick up a copy of the next  n1  lines with the
	  cursor.
(2)  Use the cursor-moving operations (or matching operations) to take the
     cursor where you want the text to go.
(3)  (A)  To drop the text into the current cursor location in the file,
	  type  CONTROL<E>  (which has this meaning only if there are lines
	  attached to the cursor).  To make more copies, return to step (2).
	  Otherwise:
     (B)  To discard the attached lines, type  CONTROL+META<K> .

Writing a modified page back to disk:  CONTROL< . > .


MARKING OPERATIONS.

Marking ends of pages.
CONTROL<X> MARK [RETURN]	makes a page start at the cursor line.
CONTROL<X> DELETE [RETURN]   removes page mark at end of current page.

To put "bookmarks" on lines for later reference.
CONTROL+META<M>		mark current line.
CONTROL+META<-M>	erase mark from current line.
CONTROL<n M>		move cursor forward to n-th mark.
CONTROL<-M>		move cursor back one mark.

SWITCHING BETWEEN FILES.

CONTROL<ε> filename [RETURN]
	switches to reading and editing  filename .
CONTROL<λ> filename [RETURN]
	switches to (only) reading  filename .
CONTROL<?>
	switches to reading instructions for the editor.  (Warning -- they
	are written for the DataDisc terminal users.)
CONTROL<H>
	switches back to previous file.
CONTROL<n> CONTROL<ε>
	switches to reading and editing the n-th file used since login,
	at line where you left it.
CONTROL<n> CONTROL<λ>
	switches to (only) reading the n-th file used since login, at
	line where you left it.
CONTROL<∃>
	lists file names and numbers for use in the above two commands.

TEXT JUSTIFICATION.

	To justify the next  n  lines, with left margin at column  l , right margin at
at column  r , and first lines of paragraphs indented to column  p :
	CONTROL<nX>JUST p, l, r [RETURN] .
If p, l ,r  are omitted, the values 1,1,74 are assumed.  If  n  is omitted, the 
entire current page is justified.
	To center the next  n1 lines:
	CONTROL<n1X>CENTER [RETURN] .
Related operations to left-justify lines or move them left or right, are ALIGN
and INDENT (see the "E" Manual).
APPENDIX B.  WHAT TO DO IN CASE OF TROUBLE.
 
When the terminal is typing things faster than you can read them:  press CONTROL
<BREAK> once.  The terminal will stop, displaying the word HOLDING.  Press it
again to restart the printing.

When you have made mistakes in controlling the editor, and it doesn't seem to
understand you:  type  CONTROL<RETURN> .  If that doesn't work, use  CONTROL<E> .

When you want to stop whatever the terminal is doing (for example, printing a
long file at you that you don't want to see):  press the [CALL] key.

When you want information about how to use a feature of the system: 
type HELP [RETURN]  for a list of such features.  Type HELP f [RETURN]  for
information about feature  f .  The available HELP features include:
	MAIL (alternate mailing technique)
	LOGIN
	LOGOUT (alias KJOB)
	DIR (directory of files)
	FIND (to find a word in a file)
	FINGER (to identify someone by name or by user ID)
	E (Documentation on the editor)
	ETEACH (Instruction on how to use the editor)
	TALK (with other current terminal users)
	YUMYUM (restaurant guide)
	UNDEL (to rescue a file you deleted)

When you want to clear garbage from the screen:  try <ESCAPE>P .  If you are
in the editor, an additional  CONTROL<V>  may be needed.  If all else fails,
get help or turn terminal off and on.



APPENDIX C.   SOME USEFUL FILES.
 
See page 2 for general information about CS department files.
PEOPLE.DAT[PER,CSD]  CSD personnel directory.
\M	Your mail file.
\B	AI Lab Bulletin Board.
\NE	News Summary.
\C	CSD Bulletin Board.
\DA	Messages of the day.
\DI	News Digest.
\F	Forwarding addresses for computer mail to departed people.
\G	Gripes about computing equipment.
\NO	Current login notices.
E.ALS[UP,DOC]  is a reference manual for the editor.  To read it while
	editing, type  CONTROL<?> .  To return to editing, type  CONTROL<H> .